package com.dragon.modules.yuegou.model.member;

import com.dragon.modules.yuegou.entity.member.TemplateSetEntity;
import com.dragon.modules.yuegou.enums.member.TemplateSetDemotionRule;
import com.dragon.modules.yuegou.enums.member.TemplateSetGradeRule;
import com.dragon.modules.yuegou.enums.member.TemplateSetMemberCode;
import com.dragon.modules.yuegou.enums.member.TemplateSetStatus;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;

/**
 * 支付宝会员模板设置模型类
 * 
 * @author pbuilder generated
 * @date 2021-10-26 20:15:21
 * @company sgy
 * @version 2.0
 * @see Length 长度限制
 * @see NotNull 对象非空
 * @see NotEmpty 字符串、集合、表、数组非空
 */
public class TemplateSet extends TemplateSetEntity {

	/**
	 * 构造一个空支付宝会员模板设置模型对象
	 */
	public TemplateSet(){
		super();
	}
	
	/**
	 * 依据实体对象的信息构造一个支付宝会员模板设置模型对象
	 * 
	 * @param entity 实体对象
	 */
	public TemplateSet(TemplateSetEntity entity){
		super(entity);
	}

	/**
	 * 依据其它对象的信息构造一个支付宝会员模板设置模型对象
	 * 
	 * @param other 其它对象
	 */
	public TemplateSet(TemplateSet other){
		super(other);
	}


	@Override
	public String getId() {
    	return id;
    }

    /**
	 * 设置主键
	 * 
	 * @param id 主键
	 * @return 当前对象
	 */
    public TemplateSet id(String id) {
    	this.id = id;
    	return this;
    }

	@Override
	public String getName() {
    	return name;
    }

    /**
	 * 设置名称
	 * 
	 * @param name 名称
	 * @return 当前对象
	 */
    public TemplateSet name(String name) {
    	this.name = name;
    	return this;
    }

	@Override
	public String getBusdId() {
    	return busdId;
    }

    /**
	 * 设置商圈id
	 * 
	 * @param busdId 商圈id
	 * @return 当前对象
	 */
    public TemplateSet busdId(String busdId) {
    	this.busdId = busdId;
    	return this;
    }

	@Override
	public String getTemplateId() {
    	return templateId;
    }

    /**
	 * 设置支付宝会员卡模板ID
	 * 
	 * @param templateId 支付宝会员卡模板ID
	 * @return 当前对象
	 */
    public TemplateSet templateId(String templateId) {
    	this.templateId = templateId;
    	return this;
    }

	@Override
	public String getRequestId() {
    	return requestId;
    }

    /**
	 * 设置请求支付宝编号
	 * 
	 * @param requestId 请求支付宝编号
	 * @return 当前对象
	 */
    public TemplateSet requestId(String requestId) {
    	this.requestId = requestId;
    	return this;
    }

	@Override
	public String getCardUrl() {
    	return cardUrl;
    }

    /**
	 * 设置投放连接
	 * 
	 * @param cardUrl 投放连接
	 * @return 当前对象
	 */
    public TemplateSet cardUrl(String cardUrl) {
    	this.cardUrl = cardUrl;
    	return this;
    }

	@Override
	public TemplateSetMemberCode getMemberCode() {
    	return memberCode;
    }

    /**
	 * 设置[枚举]码类型：1-动态二维码-DQRCODE、2-动态条形码-DBARCODE
	 * 
	 * @param memberCode [枚举]码类型：1-动态二维码-DQRCODE、2-动态条形码-DBARCODE
	 * @return 当前对象
	 */
    public TemplateSet memberCode(TemplateSetMemberCode memberCode) {
    	this.memberCode = memberCode;
    	return this;
    }

	@Override
	public String getBizNoPrefix() {
    	return bizNoPrefix;
    }

    /**
	 * 设置会员编号前缀
	 * 
	 * @param bizNoPrefix 会员编号前缀
	 * @return 当前对象
	 */
    public TemplateSet bizNoPrefix(String bizNoPrefix) {
    	this.bizNoPrefix = bizNoPrefix;
    	return this;
    }

	@Override
	public Integer getBizNoSuffixLen() {
    	return bizNoSuffixLen;
    }

    /**
	 * 设置会员编号长度
	 * 
	 * @param bizNoSuffixLen 会员编号长度
	 * @return 当前对象
	 */
    public TemplateSet bizNoSuffixLen(Integer bizNoSuffixLen) {
    	this.bizNoSuffixLen = bizNoSuffixLen;
    	return this;
    }

	@Override
	public String getBgColor() {
    	return bgColor;
    }

    /**
	 * 设置背景字体色
	 * 
	 * @param bgColor 背景字体色
	 * @return 当前对象
	 */
    public TemplateSet bgColor(String bgColor) {
    	this.bgColor = bgColor;
    	return this;
    }

	@Override
	public String getLogoId() {
    	return logoId;
    }

    /**
	 * 设置logo编号
	 * 
	 * @param logoId logo编号
	 * @return 当前对象
	 */
    public TemplateSet logoId(String logoId) {
    	this.logoId = logoId;
    	return this;
    }

	@Override
	public String getLogoUrl() {
    	return logoUrl;
    }

    /**
	 * 设置logo地址
	 * 
	 * @param logoUrl logo地址
	 * @return 当前对象
	 */
    public TemplateSet logoUrl(String logoUrl) {
    	this.logoUrl = logoUrl;
    	return this;
    }

	@Override
	public String getBackgroundId() {
    	return backgroundId;
    }

    /**
	 * 设置背景图编号
	 * 
	 * @param backgroundId 背景图编号
	 * @return 当前对象
	 */
    public TemplateSet backgroundId(String backgroundId) {
    	this.backgroundId = backgroundId;
    	return this;
    }

	@Override
	public String getBackgroundUrl() {
    	return backgroundUrl;
    }

    /**
	 * 设置背景图地址
	 * 
	 * @param backgroundUrl 背景图地址
	 * @return 当前对象
	 */
    public TemplateSet backgroundUrl(String backgroundUrl) {
    	this.backgroundUrl = backgroundUrl;
    	return this;
    }

	@Override
	public String getCreatedBy() {
    	return createdBy;
    }

    /**
	 * 设置创建人
	 * 
	 * @param createdBy 创建人
	 * @return 当前对象
	 */
    public TemplateSet createdBy(String createdBy) {
    	this.createdBy = createdBy;
    	return this;
    }

	@Override
	public LocalDateTime getCreatedTime() {
    	return createdTime;
    }

    /**
	 * 设置创建时间
	 * 
	 * @param createdTime 创建时间
	 * @return 当前对象
	 */
    public TemplateSet createdTime(LocalDateTime createdTime) {
    	this.createdTime = createdTime;
    	return this;
    }

	@Override
	public String getModifiedBy() {
    	return modifiedBy;
    }

    /**
	 * 设置修改人
	 * 
	 * @param modifiedBy 修改人
	 * @return 当前对象
	 */
    public TemplateSet modifiedBy(String modifiedBy) {
    	this.modifiedBy = modifiedBy;
    	return this;
    }

	@Override
	public LocalDateTime getModifiedTime() {
    	return modifiedTime;
    }

    /**
	 * 设置修改时间
	 * 
	 * @param modifiedTime 修改时间
	 * @return 当前对象
	 */
    public TemplateSet modifiedTime(LocalDateTime modifiedTime) {
    	this.modifiedTime = modifiedTime;
    	return this;
    }


	@Override
	public TemplateSetGradeRule getGradeRule() {
		return gradeRule;
	}

	/**
	 * 设置[枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 *
	 * @param gradeRule [枚举]等级规则：0-成长值-GROWTH、1-指定条件-SPECIFIED
	 * @return 当前对象
	 */
	public TemplateSet gradeRule(TemplateSetGradeRule gradeRule) {
		this.gradeRule = gradeRule;
		return this;
	}

	@Override
	public TemplateSetDemotionRule getDemotionRule() {
		return demotionRule;
	}

	/**
	 * 设置[枚举]降/保级设置：0-只降一级-SIMPLE、1-可降多级-MULTI
	 *
	 * @param demotionRule [枚举]降/保级设置：0-只降一级-SIMPLE、1-可降多级-MULTI
	 * @return 当前对象
	 */
	public TemplateSet demotionRule(TemplateSetDemotionRule demotionRule) {
		this.demotionRule = demotionRule;
		return this;
	}

	@Override
	public TemplateSetStatus getStatus() {
		return status;
	}

	/**
	 * 设置[枚举]状态：0-草稿-DRAFT、1-已发布-PUBLISH
	 *
	 * @param status [枚举]状态：0-草稿-DRAFT、1-已发布-PUBLISH
	 * @return 当前对象
	 */
	public TemplateSet status(TemplateSetStatus status) {
		this.status = status;
		return this;
	}

}
